package com.caijinbang.study.datasource;

import com.caijinbang.study.holder.DbContextHolder;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

/**
 * 通过扩展AbstractRoutingDataSource来获取不同的源。它是Spring提供的一个可以根据用户发起的不同请求去转换不同的数据源，
 * 比如根据用户的不同地区语言选择不同的数据库。它是通过determineCurrentLookupKey（）
 * 返回的不同key到sqlSessionFactory中获取不同源
 *
 * @author caijb
 * @version 1.0.0
 * @date 2018-05-02 15:54
 */
public class ReadWriteSplitRoutingDataSource extends AbstractRoutingDataSource {

    @Override
    protected Object determineCurrentLookupKey() {
        return DbContextHolder.getDbType();
    }
}
